package com.jeesite.modules.dp.service.xinwen;

import java.util.List;

import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.jeesite.common.entity.Page;
import com.jeesite.common.service.CrudService;
import com.jeesite.modules.dp.entity.xinwen.DpXinwen;
import com.jeesite.modules.dp.dao.xinwen.DpXinwenDao;
import com.jeesite.modules.file.entity.FileUpload;
import com.jeesite.modules.file.utils.FileUploadUtils;

/**
 * 新闻管理Service
 *
 * @author hancing
 * @version 2024-12-19
 */
@Service
public class DpXinwenService extends CrudService<DpXinwenDao, DpXinwen> {

    /**
     * 获取单条数据
     *
     * @param dpXinwen
     * @return
     */
    @Override
    public DpXinwen get(DpXinwen dpXinwen) {
        return super.get(dpXinwen);
    }

    /**
     * 查询分页数据
     *
     * @param dpXinwen 查询条件
     * @param dpXinwen page 分页对象
     * @return
     */
    @Override
    public Page<DpXinwen> findPage(DpXinwen dpXinwen) {
        return super.findPage(dpXinwen);
    }

    /**
     * 查询列表数据
     *
     * @param dpXinwen
     * @return
     */
    @Override
    public List<DpXinwen> findList(DpXinwen dpXinwen) {
        return super.findList(dpXinwen);
    }

    private void deletePrevFiles(String bizKey, String bizType) {
        List<FileUpload> files = FileUploadUtils.findFileUpload(bizKey, bizType);
        if (files != null && files.size() > 1) {
            for (int i = 0; i < files.size(); i++) {
                if (i < files.size() - 1) {
                    files.get(i).setStatus("1");
                    FileUploadUtils.getFileUploadService().updateStatus(files.get(i));
                }
            }
        }
    }

    /**
     * 保存数据（插入或更新）
     *
     * @param dpXinwen
     */
    @Override
    @Transactional
    public void save(DpXinwen dpXinwen) {
        super.save(dpXinwen);
        // 保存上传图片
        FileUploadUtils.saveFileUpload(dpXinwen, dpXinwen.getId(), "dpXinwen_image");
        deletePrevFiles(dpXinwen.getId(), "dpXinwen_image");
        List<FileUpload> files = FileUploadUtils.findFileUpload(dpXinwen.getId(), "dpXinwen_image");
        if (files != null && !files.isEmpty()) {
            dpXinwen.setSmallpic(files.getLast().getFileUrl());
            super.update(dpXinwen);
        }
    }

    /**
     * 更新状态
     *
     * @param dpXinwen
     */
    @Override
    @Transactional
    public void updateStatus(DpXinwen dpXinwen) {
        super.updateStatus(dpXinwen);
    }

    /**
     * 删除数据
     *
     * @param dpXinwen
     */
    @Override
    @Transactional
    public void delete(DpXinwen dpXinwen) {
        super.delete(dpXinwen);
    }

}